package com.drug.wms.domain;

import com.drug.common.annotation.Excel;
import com.drug.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 商品销售单对象 bus_sales_slip
 *
 * @author ruoyi
 * @date 2021-12-01
 */
public class BusSalesSlip extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    private String id;

    /**
     * 单据编号
     */
    @Excel(name = "单据编号")
    private String saleNo;

    /**
     * 单据名称
     */
    @Excel(name = "单据名称")
    private String saleName;
    /**
     * 录入日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "录入日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date entryDate;

    /**
     * 制单人
     */
    @Excel(name = "制单人")
    private Long entryUserId;

    /**
     * 制单人部门id
     */
    @Excel(name = "制单人部门id")
    private Long entryDeptId;

    /**
     * 购买单位
     */
    @Excel(name = "购买单位")
    private String purchasingUnit;

    /**
     * 仓库编号
     */
    @Excel(name = "仓库编号")
    private String warehouseNo;

    /**
     * 经手人
     */
    @Excel(name = "经手人")
    private Long handleUserId;

    /**
     * 审核人
     */
    @Excel(name = "审核人")
    private Long checkedUserId;

    /**
     * 审核部门id
     */
    @Excel(name = "审核部门id")
    private Long checkedDeptId;

    /**
     * 价格方式
     */
    @Excel(name = "价格方式")
    private String priceType;

    /**
     * 摘要
     */
    @Excel(name = "摘要")
    private String summary;

    /**
     * 附加说明
     */
    @Excel(name = "附加说明")
    private String additionalRemark;

    /**
     * 送货方式
     */
    @Excel(name = "送货方式")
    private String deliveryType;

    /**
     * 收款金额
     */
    @Excel(name = "收款金额")
    private BigDecimal totalAmount;

    /**
     * 单据状态（草稿，待审核，通过，驳回，冲红）
     */
    @Excel(name = "单据状态", readConverterExp = "草=稿，待审核，通过，驳回，冲红")
    private String inputStatus;

    /**
     * 数据状态
     */
    @Excel(name = "数据状态")
    private String validityCode;

    /**
     * 部门ID
     */
    @Excel(name = "部门ID")
    private Long deptId;

    public String getSaleName() {
        return saleName;
    }

    public void setSaleName(String saleName) {
        this.saleName = saleName;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getId() {
        return id;
    }

    public void setSaleNo(String saleNo) {
        this.saleNo = saleNo;
    }

    public String getSaleNo() {
        return saleNo;
    }

    public void setEntryDate(Date entryDate) {
        this.entryDate = entryDate;
    }

    public Date getEntryDate() {
        return entryDate;
    }

    public void setEntryUserId(Long entryUserId) {
        this.entryUserId = entryUserId;
    }

    public Long getEntryUserId() {
        return entryUserId;
    }

    public void setEntryDeptId(Long entryDeptId) {
        this.entryDeptId = entryDeptId;
    }

    public Long getEntryDeptId() {
        return entryDeptId;
    }

    public void setPurchasingUnit(String purchasingUnit) {
        this.purchasingUnit = purchasingUnit;
    }

    public String getPurchasingUnit() {
        return purchasingUnit;
    }

    public void setWarehouseNo(String warehouseNo) {
        this.warehouseNo = warehouseNo;
    }

    public String getWarehouseNo() {
        return warehouseNo;
    }

    public void setHandleUserId(Long handleUserId) {
        this.handleUserId = handleUserId;
    }

    public Long getHandleUserId() {
        return handleUserId;
    }

    public void setCheckedUserId(Long checkedUserId) {
        this.checkedUserId = checkedUserId;
    }

    public Long getCheckedUserId() {
        return checkedUserId;
    }

    public void setCheckedDeptId(Long checkedDeptId) {
        this.checkedDeptId = checkedDeptId;
    }

    public Long getCheckedDeptId() {
        return checkedDeptId;
    }

    public void setPriceType(String priceType) {
        this.priceType = priceType;
    }

    public String getPriceType() {
        return priceType;
    }

    public void setSummary(String summary) {
        this.summary = summary;
    }

    public String getSummary() {
        return summary;
    }

    public void setAdditionalRemark(String additionalRemark) {
        this.additionalRemark = additionalRemark;
    }

    public String getAdditionalRemark() {
        return additionalRemark;
    }

    public void setDeliveryType(String deliveryType) {
        this.deliveryType = deliveryType;
    }

    public String getDeliveryType() {
        return deliveryType;
    }

    public void setTotalAmount(BigDecimal totalAmount) {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getTotalAmount() {
        return totalAmount;
    }

    public void setInputStatus(String inputStatus) {
        this.inputStatus = inputStatus;
    }

    public String getInputStatus() {
        return inputStatus;
    }

    public void setValidityCode(String validityCode) {
        this.validityCode = validityCode;
    }

    public String getValidityCode() {
        return validityCode;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public Long getDeptId() {
        return deptId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("saleNo", getSaleNo())
                .append("entryDate", getEntryDate())
                .append("entryUserId", getEntryUserId())
                .append("entryDeptId", getEntryDeptId())
                .append("purchasingUnit", getPurchasingUnit())
                .append("warehouseNo", getWarehouseNo())
                .append("handleUserId", getHandleUserId())
                .append("checkedUserId", getCheckedUserId())
                .append("checkedDeptId", getCheckedDeptId())
                .append("priceType", getPriceType())
                .append("summary", getSummary())
                .append("additionalRemark", getAdditionalRemark())
                .append("deliveryType", getDeliveryType())
                .append("totalAmount", getTotalAmount())
                .append("inputStatus", getInputStatus())
                .append("validityCode", getValidityCode())
                .append("deptId", getDeptId())
                .append("createTime", getCreateTime())
                .append("createBy", getCreateBy())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
